package org.afs.gescol.edt.api;

import java.util.List;

import org.afs.gescol.edt.api.dto.TimeSlotCriteria;
import org.afs.gescol.edt.api.dto.TimeSlotDto;

/**
 * Service for timestable generating.
 * @author Kobla GBENYO (kobla.gbenyo@gmail.com)
 */
public interface TimesTableService {

    /**
     * Generate a timestable for a school cycle.
     * @param cycleId the school cycle id
     * 
     */
    void generateTimesTable(Long cycleId);

    /**
     * Get a list of Time Slots by criteria.
     * @param criteria the criteria
     * @return list of time slots
     */
    List<TimeSlotDto> getTimeSlotByCriteria(TimeSlotCriteria criteria);

    /**
     * Get a time slot by its id.
     * @param id the id
     * @return the getted time slot
     */
    TimeSlotDto getTimeSlotById(Long id);
}
